package ar.com.larreta.grilla.client.ventanas;

import java.util.Collection;
import java.util.List;

import ar.com.larreta.grilla.client.ConGrilla;
import ar.com.larreta.grilla.client.Grilla;
import ar.com.larreta.vista.client.CambioEnLaSeleccion;

import com.extjs.gxt.ui.client.data.ModelData;
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;

public abstract class CambioEnLaSeleccionDeGrilla extends CambioEnLaSeleccion {

	protected ConGrilla conGrilla;

	public CambioEnLaSeleccionDeGrilla(ConGrilla conGrilla){
		super();
		this.conGrilla = conGrilla;
	}

	
	public ConGrilla getConGrilla() {
		return conGrilla;
	}
	
	public List getSeleccionados(){
		return conGrilla.getGrilla().getSelectionModel().getSelection();
	}
	
	@Override
	public void selectionChanged(SelectionChangedEvent<ModelData> se) {
		List seleccionados = getSeleccionados();

		if ((seleccionados!=null) && (seleccionados.size()==1)){
			seleccionActual((ModelData)seleccionados.get(0));
		} else {
			seleccionActual(seleccionados);
		}
	}
	
	public abstract void seleccionActual(ModelData data);
	public void seleccionActual(List datas){}

	/**
	 * Limpia la grilla de informacion anterior y le asigna info nueva
	 * @param grilla
	 * @param info
	 */
	public void asignarInformacionEnGrilla(Grilla grilla, Collection info){

		if (grilla!=null){
			grilla.limpiar();
			if (info!=null){
				grilla.agregarDatos(info);
			}
			grilla.load();
		}
	}

}
